// Jest Snapshot v1, https://goo.gl/fbAQLP

exports[`arrays.js 1`] = `
function foo(x) { return [x, x > 0, "number " + x]; }

var [n, b, s] = foo(42);
n * s.length;
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
function foo(x) {
  return [x, x > 0, "number " + x];
}

var [n, b, s] = foo(42);
n * s.length;

`;

exports[`export_class.js 1`] = `
class C {
    x: number;
    constructor(x: number) { this.x = x; }
}

module.exports = C;
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
class C {
  x: number;
  constructor(x: number) {
    this.x = x;
  }
}

module.exports = C;

`;

exports[`generics.js 1`] = `
/* @flow */

var r: number = 0;
function foo<X>(x: X): X { r = x; return x; }
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
/* @flow */

var r: number = 0;
function foo<X>(x: X): X {
  r = x;
  return x;
}

`;

exports[`import_class.js 1`] = `
var C = require('./export_class');

var c = new C("");
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
var C = require("./export_class");

var c = new C("");

`;

exports[`locals.js 1`] = `
/* @flow */

function foo() {
    var x = 0;
    var y = x;
}

function bar(x: ?string): number {
    if (x == null) x = "";
    return x.length;
}
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
/* @flow */

function foo() {
  var x = 0;
  var y = x;
}

function bar(x: ?string): number {
  if (x == null) x = "";
  return x.length;
}

`;

exports[`objects.js 1`] = `
function C() { this.x = 0; }
C.prototype.foo = function() { return this.x; }

var c = new C();
var x: string = c.foo();

function foo() { return this.y; }
function bar() { return this.foo(); }
var o = { y: "", foo: foo, bar: bar };
var o2 = { y: 0, foo: foo, bar: bar };

o.bar();
var y: number = o2.bar();
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
function C() {
  this.x = 0;
}
C.prototype.foo = function() {
  return this.x;
};

var c = new C();
var x: string = c.foo();

function foo() {
  return this.y;
}
function bar() {
  return this.foo();
}
var o = { y: "", foo: foo, bar: bar };
var o2 = { y: 0, foo: foo, bar: bar };

o.bar();
var y: number = o2.bar();

`;
